Selektionsbild
Beim Selektionsbild ist wichtig, dass die Felder übersichtlich geordnet sind. Dies erleichtert dem Anwender die Eingabe. Fatal ist es, wenn der Anwender in verschiedenen Abhängigkeiten Felder eingeben muss, es aber nicht ersichtlich ist, wann welche Felder gefüllt werden müssen.
In der Regel haben Reports einen Selektionsbildschirm, in dem der Anwender die Datenselektion und/ oder die Listausgabe/ Listaufbereitung beeinflussen kann.
Es gibt die folgenden zwei Befehle, mit denen die Eingabewerte aufgenommen werden können:
PARAMETERS
Mit diesem Befehl wird die Eingabe eines Wertes gefordert. Mit diversen Zusätzen ist es auch möglich, eine List-Box als Eingabe zu definieren oder eine Checkbox oder einen Radiobutton. Bemühen Sie zu näheren Informationen bitte die F1-Taste.
SELECT-OPTIONS
Mit der Select-Options-Anweisung können mehrere Werte aufgenommen werden sowie Intervalle. Die Einzelwerte nicht auf ihre Gültigkeit überprüft! Das ist auch sinnvoll, da bei Intervallen eben kein genauer Wert ermittelt werden soll, sondern alles, was in diesem Intervall liegt (oder NICHT in diesem Intervall liegt).
Die Werte werden in einer sogenannten RANGES-Tabelle gespeichert, die auch mit der Anweisung
RANGES r_datum FOR sy-DATUM
definiert werden kann. Die Gültigkeit eines Wertes kann durch
CHECK feldname IN [Ranges-Tabelle].
geprüft werden. Ebenso kann auch mittels IF-Anweisung geprüft werden.
Auch in einer Select-Anweisung können die Ranges-Tabellen verwendet werden.
Die Tabelle besteht aus den Feldern
- SIGN
- OPTION
- LOW
- HIGH
SIGN
Dieses Feld kann nur zwei Werte enthalten:
- I für Including, also das Einschließen von Werten
- E für Excluding, also das Ausschließen von Werten
OPTION
Hier wird die Art der Prüfung hinterlegt:
- EQ für Equal, also Gleich dem Wert, der in LOW steht
- BT für Between, also einem Intervall von LOW bis HIGH einschließlich
- CP für Contains Pattern, also eine Mustersuche mit den Wildcards * und ?
- Weitere Werte stehen in der Hilfe
LOW und HIGH
Hier stehen nun die zu selektierenden Werte. Das Feld LOW muss immer gefüllt sein (Es sei denn, Sie möchten genau SPACE suchen). HIGH muss nur bei Intervallen gefüllt werden.
Wildcards
Bei der Eingabe von Selektionswerten können Wildcards benutzt werden:
* bedeutet: “alles”, also zum Beispiel:
ABC* findet ABCDEF und ABCABC
A*P findet ABAP, AAPP und AXP
+ bedeutet: “genau ein Zeichen”
++_ABC findet 01_ABC, TT_ABC etc
A+A+ findet ABAP und A1A2 etc
Beispiel
Um eine SELECT-OPTION vorzubelegen, müssen Sie die gewünschten Werte in der INITIALIZATION-Section an die Tabelle anhängen.
Eingabeparameter für die Fluggesellschaften:
SELECT-OPTIONS s_carrid FOR t_scarr-carrid.
Alle Fluggesellschaften vorbelegen, die
- mit A beginnen
- Delta Airlines und Lauda Air
- Lufthansa und Swissair ausshließen
*--- Alle Fluggesellschaften, die mit A beginnen s_carrid-sign = 'I'. "Including s_carrid-option = 'CP'. "Muster s_carrid-low = 'A*'. "Mit A beginnend APPEND s_carrid. *--- Fluggesellschaften "Delta Airlines" und "Lauda Air" s_carrid-sign = 'I'. "Including s_carrid-option = 'EQ'. "gleich s_carrid-low = 'DL'. "Delta Airlines APPEND s_carrid. s_carrid-low = 'NG'. "Lauda Air APPEND s_carrid. *--- Fluggesellschaften "Lufthansa" und "Swissair" ausschließen s_carrid-sign = 'E'. "Excluding s_carrid-option = 'EQ'. "Muster s_carrid-low = 'LH'. "Lufthansa APPEND s_carrid. s_carrid-low = 'SR'. "Swissair APPEND s_carrid. SELECT * FROM scarr INTO TABLE t_scarr WHERE carrid IN s_carrid.
Tipp
Gewöhnen Sie sich die folgende Namensgebung an, um die Parameter und Selektionsoptionen leicht identifizieren zu können:
S_ für SELECT-OPTIONS
P_ für PARAMETERS
Verschönerungen
Es gibt einige Möglichkeiten, die Eingabefelder voneinander abzugrenzen. Eine Möglichkeit ist die, einen Rahmen um eine Gruppe von Feldern zu machen:
SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE text-t01. PARAMETERS: ... SELECTION-SCREEN END OF BLOCK 1.
Machen Sie einen Doppelklick auf das Textelement und vergeben Sie einen passenden Namen.
Tipp
Die Länge des Textelementes wird automatisch auf die Anzahl der Zeichen angepasst. Korrigieren Sie hier die Länge und machen das Feld etwas größer. Das hat den Vorteil, dass Sie bei Übersetzungen mehr Platz haben!!
Und so sieht’s aus:
Felder auf “nur anzeigen” setzen
Es kann sinnvoll sein, einige Feste Werte mit auf dem Selektionsbild anzuzeigen, um dem Anwender zu zeigen, dass genau dieser Wert bei der weiteren Verarbeitung verwendet wird.
Legen Sie dieses Feld als PARAMETER mit dem Zusatz MODIF ID an und modifizieren Sie es dann wie folgt:
PARAMETERS p_text TYPE text20 MODIF ID dis. AT SELECTION-SCREEN OUTPUT. LOOP AT SCREEN. IF screen-group1 = 'DIS'. screen-input = '0'. MODIFY SCREEN. ENDIF. ENDLOOP.
- Meine Eclipse-Plugins - 22. November 2024
- Interview mit Björn Schulz (Software-Heroes.com) - 3. September 2024
- Daten aus ALV ermitteln - 3. September 2024